A dither matrix may be used to convert continuous tone image data (or digitized pixel data having many discrete gray levels--typically 8 bits or 256 levels) to binary raster data (or pixel data having only a few gray levels--typically not more than 2 bits or 4 levels). The dithering process may be implemented in either hardware or software, and by a driver in a computer or by an image preprocessor in a printer, a display monitor, or other pixel oriented peripheral output device. The resultant binary raster data defines the individual pixels of a dithered image which includes both low frequency image content and high frequency noise. Typically, the binary raster data is temporarily stored in an associated memory until it has been combined with other data and the combined data representing an entire page of data (or a designated portion of a page, such as the "swath" printed during a single sweep of an inkjet "pen") has been "rendered" into an format suitable for printing (or other graphics-based output intelligible to a human user). In general, a simple run-length encoding (RLE) compression provides only a minimal level of compression for the data defining such a dithered image.
In many known image rendering processes, the organization and storage of the image data is page oriented and is based on contiguous memory allocation units, each having a fixed size. In order to avoid fragmentation and associated overhead, deletion of already printed data within a particular memory allocation unit, or even deletion of all the data associated with an entire memory allocation unit, typically does not free any storage space for other data until an entire page has been printed and all of the contiguous memory allocation units can be released.